using WMS_Goodsinfo.Api.Write.DTOs;

namespace WMS_Goodsinfo.Api.Write.Services
{
    /// <summary>
    /// 仪表板统计服务接口
    /// </summary>
    public interface IDashboardStatisticsService
    {
        /// <summary>
        /// 获取库存占比数据
        /// </summary>
        Task<InventoryProportionData> GetInventoryProportionAsync();

        /// <summary>
        /// 获取入库统计数据
        /// </summary>
        /// <param name="days">统计天数</param>
        Task<InboundStatisticsData> GetInboundStatisticsAsync(int days = 7);

        /// <summary>
        /// 获取出库统计数据
        /// </summary>
        /// <param name="days">统计天数</param>
        Task<OutboundStatisticsData> GetOutboundStatisticsAsync(int days = 7);

        /// <summary>
        /// 获取排行榜数据
        /// </summary>
        /// <param name="days">统计天数</param>
        /// <param name="topCount">排行数量</param>
        Task<RankingData> GetRankingDataAsync(int days = 7, int topCount = 10);

        /// <summary>
        /// 检查系统消息
        /// </summary>
        Task<List<SystemMessage>> CheckSystemMessagesAsync();

        /// <summary>
        /// 获取完整仪表板数据
        /// </summary>
        Task<DashboardData> GetDashboardDataAsync();
    }
}